package cn.com.huzo.service.trade;

import cn.com.huzo.model.entities.trade.DeliveryCommandSheetLinesEntity;
import huzofw.service.GenericManager;
import java.util.List;
import java.util.Map;

/**
 * 发货发令单明细管理服务对象接口。
 *
 * @author 吴旭
 */
public interface DeliveryCommandSheetLinesManager extends GenericManager<DeliveryCommandSheetLinesEntity, String> {

    /**
     * 根据给定ID取得发货发令单明细信息对象。
     *
     * @param headerId 发令单标识
     * @return 发货发令单信息对象
     * @throws java.lang.Exception
     */
    Map<String, Object> fetchByHeaderId(Long headerId) throws Exception;

    /**
     * 根据给定ID+款号，取得发货发令单明细信息对象。
     *
     * @param headerId 发令单标识
     * @param styleNo 款号
     * @return 发货发令单信息对象
     * @throws java.lang.Exception
     */
    List<DeliveryCommandSheetLinesEntity> fetchByHeaderIdAndStyleNo(Long headerId, String styleNo) throws Exception;

    // <editor-fold defaultstate="collapsed" desc="款号顺序操作">
    /**
     * 取得该发货发令单的款号顺序
     *
     * @param headerId 发货发令单ID
     * @return
     * @throws java.lang.Exception
     */
    List<Map<String, Object>> fetchLinesStyleNoOrderByHeaderId(Long headerId) throws Exception;

    /**
     * 重设款号排序
     *
     * @param itemList 排序数据
     * @return
     * @throws java.lang.Exception
     */
    Map<String, Object> updateLinesStyleNoOrder(List<Map<String, Object>> itemList) throws Exception;
    // </editor-fold>
}
